<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>URL测试，注意不再是${}，而是@{}</h1>
<!--    所有的额超链接用的都是get方式-->
<h3>使用绝对路径</h3>
<a th:href="@{https://www.bilibili.com}" target="_blank">打开b站</a>
<hr/>

<!--使用<a href="" th:href="@{/hello}"></a>的好处是，当之后项目的路径变更是，thymeleaf会自动随之改变
例如当在application.yml中配置了
server:
  servlet:
    context-path: /suibian/123/ok
不修改th:href="@{/hello}"，就能自动变为 <a href="" th:href="@{/suibian/123/ok/hello}"></a>
-->
<h3>使用相对路径</h3>
<p>相对于项目路径的根</p>
<a th:href="@{/strings}" target="_blank">前往string 内置对象测试</a><br/>
<!--    当tomcat包含了多个项目的时候可以这么做，因为现在tomcat是内嵌于Spring boot 的，暂时只有一个项目-->
<a th:href="@{~/projectName/resourcesName}">相对于服务器的根</a>
<h1>在URL中传递参数</h1>
<ul>
    <li>
        <a th:href="@{/transmitParameters?userName=罗俊华&age=22}">在普通格式的URL中传递参数</a>
    </li>
    <li>
        <a th:href="@{/transmitParameters(userName=高孔燕,age=18)}">通过括号中的key=value来传递参数 (key1=value1,key2=value2)</a>
    </li>
    <li>
        <a th:href="@{'/transmitParameters?userName='+${nameAttr}+'&age='+${ageAttr}}">
            传递动态参数的时候，需要用单引号做字符串拼接，否则${}会被认为是字符串，从而引发解析异常
        </a>
    </li>
    <li>
        <a th:href="@{/transmitParameters(userName=${nameAttr},age=${ageAttr})}">
            使用/url(key2=${value1},key2=${value2})就不用字符串拼接了
        </a>
    </li>
</ul>
<h1>在restful格式的URL中传递参数，restful中动态获取参数都无需使用字符串拼接，直接使用el表达式即可</h1>
<ul>
    <li>
        <a th:href="@{/transmitParametersRestful/{studentId}/{studentName}(studentId=07,studentName=restful罗俊华)}">
            restful传递静态参数
        </a>
    </li>
    <li>
        <a th:href="@{/mixParameters/{itemName}(itemName=笔记本电脑,number=100)}">
            传递混合参数,restful和传统url
        </a>
    </li>
    <li>
        <a th:href="@{/mixParameters/{itemName}(itemName=${nameAttr},number=${ageAttr})}">
            混合模式传递动态参数
        </a>
    </li>
    <li><a href=""></a></li>
</ul>
</body>
</html>